'''
Created on 09/10/2012

@author: rcasal
'''

from repositories.i_repository import IRepository
from gluon.dal import Field
from domain.entities.tipodocumento import TipoDocumento

class TipoDocumentoRepository(IRepository):
    '''
    classdocs
    '''

    def __init__(self, datoscomunes, T):
        '''
        Constructor
        '''
        self.__datoscomunes = datoscomunes
        self.__table = None
        self.__T = T
        
    def define_table(self, migrate = False):
        
        self.__datoscomunes.define_table('CodTipoDocumento'
        ,Field('Codigo', 'string', length = 15, required = True)
        ,Field('Descripcion', 'string', length = 50, required = True)
        ,migrate = migrate
        )
        self.__table = self.__datoscomunes['CodTipoDocumento']
        self.add_requires()
        
    def add_requires(self):
        pass
            
    def findAll(self):
        tipos = self.__datoscomunes(self.__datoscomunes.CodTipoDocumento.id > 0).select()
        tipos_doc = []
        for tipo in tipos:
            tipos_doc.append(TipoDocumento.deserialize(tipo))
        return tipos_doc
    
    def findOne(self, idtipo):
        tipo = self.__datoscomunes(self.__datoscomunes.CodTipoDocumento.id == idtipo).select().last()
        if tipo:
            return TipoDocumento.deserialize(tipo)
        else:
            return None
    
    def save(self, entity):
        pass
    
    def delete(self, entity):
        pass